﻿using System;
using System.Collections.Generic;
using System.Linq;

namespace SocialLearning
{
    public class UAC_AdvancedDetails : I_UAC_AdvancedDetails
    {
        #region Private Fields

        public int uid { get; set; }
        private DateTime dateofbirth;
        private string homeLanguage, nationality, homeAddress, postalAddress, city, country, code, medicalAid, medicalAidNumber;
        private UAC_EthnicGroup ethnicGroup;
        private UAC_Disabilities disabilities;

        #endregion

        #region Proporties

        /// <summary>
        /// Gets or sets the date of birth.
        /// </summary>
        /// <value>
        /// The date of birth.
        /// </value>
        public DateTime DateOfBirth
        {
            get { return dateofbirth; }
            set { dateofbirth = value; }
        }

        /// <summary>
        /// Gets or sets the home language.
        /// </summary>
        /// <value>
        /// The home language.
        /// </value>
        public string HomeLanguage
        {
            get { return homeLanguage; }
            set { homeLanguage = value; }
        }

        /// <summary>
        /// Gets or sets the nationality.
        /// </summary>
        /// <value>
        /// The nationality.
        /// </value>
        public string Nationality
        {
            get { return nationality; }
            set { nationality = value; }
        }

        /// <summary>
        /// Gets or sets the home address.
        /// </summary>
        /// <value>
        /// The home address.
        /// </value>
        public string HomeAddress
        {
            get { return homeAddress; }
            set { homeAddress = value; }
        }

        /// <summary>
        /// Gets or sets the postal address.
        /// </summary>
        /// <value>
        /// The postal address.
        /// </value>
        public string PostalAddress
        {
            get { return postalAddress; }
            set { postalAddress = value; }
        }

        /// <summary>
        /// Gets or sets the city.
        /// </summary>
        /// <value>
        /// The city.
        /// </value>
        public string City
        {
            get { return city; }
            set { city = value; }
        }

        /// <summary>
        /// Gets or sets the country.
        /// </summary>
        /// <value>
        /// The country.
        /// </value>
        public string Country
        {
            get { return country; }
            set { country = value; }
        }

        /// <summary>
        /// Gets or sets the code.
        /// </summary>
        /// <value>
        /// The code.
        /// </value>
        public string Code
        {
            get { return code; }
            set { code = value; }
        }

        /// <summary>
        /// Gets or sets the medical aid.
        /// </summary>
        /// <value>
        /// The medical aid.
        /// </value>
        public string MedicalAid
        {
            get { return medicalAid; }
            set { medicalAid = value; }
        }

        /// <summary>
        /// Gets or sets the medical aid number.
        /// </summary>
        /// <value>
        /// The medical aid number.
        /// </value>
        public string MedicalAidNumber
        {
            get { return medicalAidNumber; }
            set { medicalAidNumber = value; }
        }

        /// <summary>
        /// Gets or sets the ethnic group.
        /// </summary>
        /// <value>
        /// The ethnic group.
        /// </value>
        public UAC_EthnicGroup EthnicGroup
        {
            get { return ethnicGroup; }
            set { ethnicGroup = value; }
        }

        /// <summary>
        /// Gets or sets the disabilities.
        /// </summary>
        /// <value>
        /// The disabilities.
        /// </value>
        public UAC_Disabilities Disabilities
        {
            get { return disabilities; }
            set { disabilities = value; }
        }
        #endregion

        #region Constructors

        /// <summary>
        /// Initializes a new instance of the <see cref="UAC_AdvancedDetails"/> class.
        /// </summary>
        /// <param name="DOB">The DOB.</param>
        /// <param name="homeLang">The home lang.</param>
        /// <param name="nationality">The nationality.</param>
        /// <param name="homeAdd">The home add.</param>
        /// <param name="postalAdd">The postal add.</param>
        /// <param name="city">The city.</param>
        /// <param name="country">The country.</param>
        /// <param name="code">The code.</param>
        /// <param name="medAid">The med aid.</param>
        /// <param name="medAidnum">The med aidnum.</param>
        /// <param name="ethnicGroup">The ethnic group.</param>
        /// <param name="disabilities">The disabilities.</param>
        public UAC_AdvancedDetails(DateTime DOB, string homeLang, string nationality, string homeAdd, string postalAdd, string city, string country, string code, string medAid, string medAidnum, UAC_EthnicGroup ethnicGroup, UAC_Disabilities disabilities)
        {
            this.DateOfBirth = DOB;
            this.HomeLanguage = homeLang;
            this.Nationality = nationality;
            this.HomeAddress = homeAdd;
            this.PostalAddress = postalAdd;
            this.City = city;
            this.Country = country;
            this.Code = code;
            this.MedicalAid = medAid;
            this.MedicalAidNumber = medAidnum;
            this.EthnicGroup = ethnicGroup;
            this.Disabilities = disabilities;
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="UAC_AdvancedDetails"/> class.
        /// </summary>
        /// <param name="DOB">The DOB.</param>
        /// <param name="HomeLang">The home lang.</param>
        /// <param name="nationality">The nationality.</param>
        /// <param name="HomeAdd">The home add.</param>
        /// <param name="PostalAdd">The postal add.</param>
        /// <param name="city">The city.</param>
        /// <param name="country">The country.</param>
        /// <param name="code">The code.</param>
        public UAC_AdvancedDetails(DateTime DOB, string HomeLang, string nationality, string HomeAdd, string PostalAdd, string city, string country, string code)
        {
            this.DateOfBirth = DOB;
            this.HomeLanguage = HomeLang;
            this.Nationality = nationality;
            this.HomeAddress = HomeAdd;
            this.PostalAddress = PostalAdd;
            this.City = city;
            this.Country = country;
            this.Code = code;
        }

        #endregion

        #region Engine Implementation

        #endregion
    }
}
